home *** CD-ROM | disk | FTP | other *** search
/ Packard Bell - Internet on a CD / internet on a cd.cdr / Internet / sites / Clementine_NASA / clemdsrc.hqx / get_filename.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-24  |  1.4 KB  |  72 lines

  1. /**************************************************************************
  2. * get_filename subroutine - Adapted from MPW toolkit C examples
  3. *
  4. * subroutine description
  5. *
  6. *         Extract the file name from the Standard File information
  7. *
  8. * argument descriptions
  9. *
  10. *         argument        use
  11. *        --------        ---
  12. *
  13. *        reply            Standard File information
  14. *
  15. *        filenam            Extracted file name
  16. *
  17. ***************************************************************************/
  18.  
  19. /********************
  20. * Standard C includes 
  21. *********************/
  22. #include <stdio.h>
  23. #include <stdlib.h>
  24. #include <string.h>
  25.  
  26. /***************************
  27. * Macintosh toolbox includes 
  28. ****************************/
  29. #include <Packages.h>
  30.  
  31. void get_filename(SFReply reply,char *filenam)
  32. {
  33.   HVolumeParam  hvp;
  34.   WDPBRec  wd;
  35.   Str255  vname;
  36.   Boolean  flag = 0;
  37.   
  38.   void concat_vol_file();
  39.   void pathname();
  40.    
  41.   *filenam = '\0';
  42.    
  43.   hvp.ioNamePtr = (StringPtr) &vname;
  44.   hvp.ioVRefNum = reply.vRefNum;
  45.   hvp.ioVolIndex = 0;
  46.    
  47.   if (PBHGetVInfo((HParmBlkPtr) &hvp,flag))
  48.     return;
  49.       
  50.   if (flag)
  51.     concat_vol_file(filenam,vname,reply.fName);
  52.   else if (hvp.ioVSigWord == 0xd2d7) 
  53.     concat_vol_file(filenam,vname,reply.fName);
  54.   else {
  55.     wd.ioNamePtr = (StringPtr) &vname;
  56.     wd.ioVRefNum = reply.vRefNum;
  57.     wd.ioWDIndex = 0;
  58.       
  59.     if (PBGetWDInfo(&wd,flag))
  60.       return;
  61.     pathname(filenam,wd.ioVRefNum,wd.ioWDDirID);
  62.     if (filenam != NULL)
  63.       strcat(filenam,p2cstr(reply.fName));
  64.     else
  65.       return;
  66.   }
  67. }
  68.    
  69.    
  70.   
  71.       
  72.